package com.gxa.javaserver.interceptor;

import com.gxa.javaserver.pojo.Admin;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 * 登陆的拦截器
 * @author:Teacher黄
 * @date:Created at 2020/06/05
 */

public class LoginInterceptor implements HandlerInterceptor {


    /**
     * 前置方法
     * @param request
     * @param response
     * @param handler
     * @return true 放行/ false 拦截
     * @throws Exception
     */
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        System.out.println("拦截到啦!");

        // 如何去判断是否登陆呢?
        // 获取session对象,然后获取里面保存的admin对象
        // 如果admin对象不等于null, 说明session有值 => 放行
        // 如果admin对象等于null, 说明没有登陆 => 重定向到登陆界面
        // 1. 获取session对象
        HttpSession session = request.getSession();
        // 2. 获取保存的admin对象
        Admin admin = (Admin) session.getAttribute("admin");
        // 3. 判断是否为null
        if (admin != null) {
            return true;
        }

        // 4. 重定向到登陆页面
        response.sendRedirect("/login/page");

        return false;
    }


}
